#pragma once
#ifndef _Include_ChessPieceView_h_
#define _Include_ChessPieceView_h_

class Player;

class ChessPieceView
{
public:
    explicit ChessPieceView() {}
    ~ChessPieceView() {}

public:
    HRESULT Initialize(std::shared_ptr<Player>& player1, std::shared_ptr<Player>& player2);
    HRESULT DrawChessPieces(const HWND& hwnd);

protected:
    HRESULT DrawChessPiecesFromChessType(
        const HWND& hwnd, const CHESS_TYPE& chess_type, const RECT& rect, int player_index);

private:
    std::shared_ptr<Player> m_player1;
    std::shared_ptr<Player> m_player2;
};
typedef std::unique_ptr<ChessPieceView> LPChessPieceView;

#endif//_Include_ChessPieceView_h_